package com.brillilab.service.core.experiments;

import com.brillilab.domain.po.experiments.PlateGridReagent;
import com.brillilab.domain.vo.experiments.Alias;
import com.brillilab.domain.vo.experiments.PlateGridReagentVo;

import java.util.List;

public interface IPlateGridReagentService {
    boolean insert(PlateGridReagent gridReagent);

    int selectCountOnePlate(Long plateId);

    PlateGridReagent selectOne(Long plateId,Long gridId,Long stepReagentId,Integer type);

    List<PlateGridReagent> selectList(Long plateId);

    List<PlateGridReagentVo> selectVoList(Long plateId,Long gridId,Integer classify);

    void updateAlias(Long sourceId,Integer type,String alias);

    boolean deleteByPlateId(Long plateId);

    int selectCountOneGrid(Long gridId);

    PlateGridReagent selectOne(Long stepReagentId,Integer type,Long gridId);

    boolean deleteById(Long id);

    List<PlateGridReagent> selectList(List<Long> gridIds);

    int deleteInGridIds(Long sourceId,Integer type,List<Long> gridIds);

    int insertBatch(List<PlateGridReagent> insertRe);

    int updateBatch(List<PlateGridReagent> updateRe);

    int updateAliasBatch(List<Alias> aliases);

    int deleteBySourceIdAndType(List<Long> sourceIds,Integer type);

    List<PlateGridReagent> selectListBySourceIdAndType(List<Long> sourceIds,Integer type);

    List<PlateGridReagentVo> selectVoList(List<Long> gridIds);

    List<Long> selectPlateGridIdList(Long plateId);

    boolean deleteByExperimentId(Long experimentId);
}
